home *** CD-ROM | disk | FTP | other *** search
/ Windows Game Programming for Dummies (2nd Edition) / WinGamProgFD.iso / mac / DirectX SDK / DXSDK / include / DShowIDL / mstve.idl < prev    next >
Text File  |  2001-10-08  |  79KB  |  1,458 lines

  1. //------------------------------------------------------------------------------
  2. // File: MSTve.idl
  3. //
  4. // Desc: IDL source for MSTvE.dll
  5. //
  6. // Copyright (c) 1999-2001, Microsoft Corporation.  All rights reserved.
  7. //------------------------------------------------------------------------------
  8.  
  9. //
  10. // This file will be processed by the MIDL tool to
  11. // produce the type library (TveContr.tlb) and marshalling code.
  12. //
  13. //      Need to put MIDL attributes of:
  14. //          'noncreatable' on
  15. //          'hidden'       on
  16. //          'nonbrowsable' on
  17. //
  18. //  -- _Helper interfaces need to be in the library section or else
  19. //      can't seen them in the client
  20. //
  21. //  -- None of the _Helper interfaces are marked dual.  Hence they 
  22. //     won't work up on the client... (???)
  23. //
  24. // ---------------------------------------------------
  25. //      CAUTION - if you change methods below, you need to regen the proxy-stub file
  26. //          nmake -f MSTvEps.mk
  27. //          regsvr32 /s MSTvEps.dll
  28. //  
  29. //
  30. //      Also - if you change any of the IID's, you need to 
  31. //      rebuild ..\uuid\[]\strmiids.lib
  32.  
  33. cpp_quote("//+-------------------------------------------------------------------------")
  34. cpp_quote("//")
  35. cpp_quote("//  Microsoft Windows")
  36. cpp_quote("//  Copyright (C) Microsoft Corporation, 1999-2001.")
  37. cpp_quote("//")
  38. cpp_quote("//--------------------------------------------------------------------------")
  39. cpp_quote("#pragma once")
  40.  
  41. import "oaidl.idl";
  42. import "ocidl.idl";
  43.  
  44. // forward declarations
  45. interface ITVETrigger;
  46. interface ITVETrack;
  47. interface ITVEVariation;
  48. interface ITVEEnhancement;
  49. interface ITVEService;
  50. interface ITVEActiveService;
  51. interface ITVESupervisor;
  52. interface ITVEAttrMap;
  53. interface ITVEAttrTimeQ;
  54.  
  55. interface ITVETracks;
  56. interface ITVEVariations;
  57. interface ITVEEnhancements;
  58. interface ITVEServices;
  59.  
  60. interface ITVEFile;
  61.  
  62. interface ITVESupervisor_Helper;
  63.  
  64. //  Listener..
  65. interface ITVEMCast;
  66. interface ITVEMCasts;
  67. interface ITVEMCastManager;
  68. interface ITVEMCastCallback;
  69.  
  70. //  interfaces to configure the filter and get events from,
  71. interface ITVEFilter ;
  72. interface ITVEFilter_Helper;
  73.  
  74. // glue stuff
  75. interface   ITVENavAid;
  76. interface   ITVENavAid_Helper;
  77. interface   ITVENavAid_NoVidCtl;
  78. interface   ITVETriggerCtrl;
  79. interface   ITVETriggerCtrl_Helper;
  80.  
  81. interface   ITVEFeature;
  82. interface   ITVESupervisorGITProxy;
  83. // ----------------------------------------------------------------------------------
  84.  
  85. #define COLLECTID_Item      DISPID_VALUE    // (0)  
  86. #define COLLECTID_Count     1               // standard set of collection interfaces
  87. #define COLLECTID_Add       2
  88. #define COLLECTID_Remove    3
  89. #define COLLECTID_RemoveAll 4               // extra for maps
  90. #define COLLECTID_Key       5   
  91. #define COLLECTID_Replace   6       
  92. #define COLLECTID_Insert    7       
  93. #define COLLECTID_Update    8
  94.     
  95. typedef enum NENH_Mode
  96. {
  97.     NENH_New,
  98.     NENH_Duplicate,
  99.     NENH_Updated,
  100.     NENH_Starting,
  101.     NENH_Expired
  102. } NENH_Mode;
  103.  
  104. typedef enum NPKG_Mode
  105. {
  106.     NPKG_Starting,                          // brand new packet (never seen this UUID before)
  107.     NPKG_Received,                          // correctly received and decoded a package
  108.     NPKG_Duplicate,                         // duplicate send of a one already successfully received (packet 0 only)
  109.     NPKG_Resend,                            // resend of one that wasn't received correctly before (packet 0 only)
  110.     NPKG_Expired
  111. } NPKG_Mode;
  112.  
  113. typedef enum NTRK_Mode
  114. {
  115.     NTRK_New,
  116.     NTRK_Duplicate,                         // exact duplicate of existing one
  117.     NTRK_Updated,                           // updated version of existing one
  118.     NTRK_Starting,                          // (not used???)
  119.     NTRK_Expired
  120. } NTRK_Mode;
  121.  
  122. typedef enum NFLE_Mode
  123. {
  124.     NFLE_Received,                          // correctly received and decoded a package
  125.     NFLE_Expired
  126. } NFLE_Mode;
  127.  
  128. typedef enum NTUN_Mode
  129. {
  130.     NTUN_New,                               // new station (service) never seen before
  131.     NTUN_Retune,                            // tuning back to an existing station
  132.     NTUN_Reactivate,                        // retuning to the current station
  133.     NTUN_Turnoff,                           // turning atvef off
  134.     NTUN_Fail                               // failed to tune for some reason
  135. } NTUN_Mode;
  136.  
  137.  
  138. typedef enum NWHAT_Mode                     // used in NotifyAuxInfo
  139. {
  140.     NWHAT_Announcement,
  141.     NWHAT_Trigger,
  142.     NWHAT_Data,
  143.     NWHAT_Other,
  144.     NWHAT_Extra
  145. } NWHAT_Mode;
  146.  
  147.  
  148.         
  149.  
  150.             // ---------------------------------------------------------------------
  151.  
  152.     [
  153.         object,
  154.         uuid(05500101-FAA5-4df9-8246-BFC23AC5CEA8),
  155.         dual,
  156.         helpstring("ITVETrigger Interface"),
  157.         pointer_default(unique)
  158.     ]
  159.     interface ITVETrigger : IDispatch
  160.     {
  161.         [propget, id(1), helpstring("property Parent")]         HRESULT Parent([out, retval] IUnknown* *pVal);
  162.         [propget, id(2), helpstring("property Service")]        HRESULT Service([out, retval] ITVEService* *pVal);
  163.         [propget, id(3), helpstring("property IsValid")]        HRESULT IsValid([out, retval] VARIANT_BOOL *pVal);
  164.         [propget, id(4), helpstring("property URL")]            HRESULT URL([out, retval] BSTR *pVal);
  165.         [propget, id(5), helpstring("property Name")]           HRESULT Name([out, retval] BSTR *pVal);
  166.         [propget, id(6), helpstring("property Expires")]        HRESULT Expires([out, retval] DATE *pVal);
  167.         [propget, id(7), helpstring("property Executes")]       HRESULT Executes([out, retval] DATE *pVal);
  168.         [propget, id(8), helpstring("property Script")]         HRESULT Script([out, retval] BSTR *pVal);
  169.         [propget, id(9), helpstring("property TVELevel")]       HRESULT TVELevel([out, retval] float *pVal);
  170.         [propget, id(10), helpstring("property Rest")]          HRESULT Rest([out, retval] BSTR *pVal);
  171.         [         id(11), helpstring("method ParseTrigger")]    HRESULT ParseTrigger([in] const BSTR rVal);
  172.     };
  173.  
  174.     [
  175.         object,
  176.         uuid(05500201-FAA5-4df9-8246-BFC23AC5CEA8),
  177. //      dual,
  178.         hidden,
  179.         helpstring("ITVETrigger_Helper Interface"),
  180.         pointer_default(unique)
  181.     ]
  182.     interface ITVETrigger_Helper : IUnknown
  183.     {
  184.         [         id(1), helpstring("method ConnectParent")]    HRESULT ConnectParent([in] ITVETrack *pTrack);
  185.         [propget, id(2), helpstring("property CRC")]            HRESULT CRC([in] const BSTR rVal, [out, retval] BSTR *pbstrCRC);
  186.         [         id(3), helpstring("method UpdateFrom")]       HRESULT UpdateFrom([in] ITVETrigger *pTrigger, [out] long *plgrfTRKChanged);
  187.         [         id(4), helpstring("method RemoveYourself")]   HRESULT RemoveYourself();
  188.         [         id(5), helpstring("method DumpToBSTR")]       HRESULT DumpToBSTR([out] BSTR *pbstrBuff);
  189.     };
  190.  
  191.  
  192. // ---------------------------------------------------
  193.  
  194.     [
  195.         object,
  196.         uuid(05500102-FAA5-4df9-8246-BFC23AC5CEA8),
  197.         dual,
  198.         helpstring("ITVETrack Interface"),
  199.         pointer_default(unique)
  200.     ]
  201.     interface ITVETrack : IDispatch
  202.     {
  203.         [propget, id(1), helpstring("property Parent")]         HRESULT Parent([out, retval] IUnknown* *pVal);
  204.         [propget, id(2), helpstring("property Service")]        HRESULT Service([out, retval] ITVEService* *pVal);
  205.         [propget, id(3), helpstring("property Trigger")]        HRESULT Trigger([out, retval] ITVETrigger* *pVal);
  206.         [propget, id(4), helpstring("property Description")]    HRESULT Description([out, retval] BSTR *pVal);
  207.         [propput, id(4), helpstring("property Description")]    HRESULT Description([in] BSTR newVal);
  208.         [         id(5), helpstring("method AttachTrigger")]    HRESULT AttachTrigger([in] ITVETrigger *pTrigger);
  209.         [         id(6), helpstring("method ReleaseTrigger")]   HRESULT ReleaseTrigger();
  210.         [         id(7), helpstring("method CreateTrigger")]    HRESULT CreateTrigger([in] const BSTR bstrDescription);
  211.     };
  212.  
  213.     [
  214.         object,
  215.         uuid(05500202-FAA5-4df9-8246-BFC23AC5CEA8),
  216. //      dual,
  217.         hidden,
  218.         helpstring("ITVETrack_Helper Interface"),
  219.         pointer_default(unique)
  220.     ]
  221.     interface ITVETrack_Helper : IUnknown
  222.     {
  223.         [id(1), helpstring("method ConnectParent")]     HRESULT ConnectParent(ITVEVariation *pVariation);
  224.         [id(2), helpstring("method RemoveYourself")]    HRESULT RemoveYourself();
  225.         [id(3), helpstring("method DumpToBSTR")]        HRESULT DumpToBSTR([out] BSTR *pbstrBuff);
  226.     };
  227.  
  228.     [
  229.         object,
  230.         uuid(05500112-FAA5-4df9-8246-BFC23AC5CEA8),
  231.         dual,
  232.         helpstring("ITVETracks Interface"),
  233.         pointer_default(unique)
  234.     ]
  235.  
  236.     interface ITVETracks : IDispatch
  237.     {
  238.         [propget, id(DISPID_NEWENUM), restricted, helpstring("property _NewEnum")] HRESULT _NewEnum([out, retval] IUnknown **pCollection);
  239.         [propget, id(COLLECTID_Count),  helpstring("property Count")]       HRESULT Count([out, retval] long *pVal);
  240.         [propget, id(COLLECTID_Item),   helpstring("property Item")]        HRESULT Item([in] VARIANT var, [out, retval] ITVETrack * *pVal);
  241.         [         id(COLLECTID_Add),    helpstring("method Add")]           HRESULT Add([in] ITVETrack *pTrack);
  242.         [         id(COLLECTID_Remove), helpstring("method Remove")]        HRESULT Remove([in] VARIANT var);
  243.         [         id(COLLECTID_RemoveAll), helpstring("method RemoveAll")]  HRESULT RemoveAll();
  244.         [         id(COLLECTID_Insert), helpstring("method Insert")]        HRESULT Insert([in] int iLoc, [in] ITVETrack *pTrack);
  245.     };
  246.  
  247. // ---------------------------------------------------
  248.  
  249.     [
  250.         object,
  251.         uuid(05500103-FAA5-4df9-8246-BFC23AC5CEA8),
  252.         dual,
  253.         helpstring("ITVEVariation Interface"),
  254.         pointer_default(unique)
  255.     ]
  256.     interface ITVEVariation : IDispatch
  257.     {
  258.         [propget, id(1), helpstring("property Parent")]             HRESULT Parent([out, retval] IUnknown* *pVal);
  259.         [propget, id(2), helpstring("property Service")]            HRESULT Service([out, retval] ITVEService* *pVal);
  260.         [propget, id(3), helpstring("property Tracks")]             HRESULT Tracks([out, retval] ITVETracks* *pVal);
  261.         [propget, id(4), helpstring("property Description")]        HRESULT Description([out, retval] BSTR *pVal);
  262.         [propput, id(4), helpstring("property Description")]        HRESULT Description([in] BSTR newVal);
  263.  
  264.         [propget, id(5), helpstring("property IsValid")]            HRESULT IsValid([out, retval] VARIANT_BOOL *pVal);
  265.         [propget, id(6), helpstring("property MediaName")]          HRESULT MediaName([out, retval] BSTR *newVal);
  266.         [propget, id(7), helpstring("property MediaTitle")]         HRESULT MediaTitle([out, retval] BSTR *newVal);
  267.         [propget, id(8), helpstring("property FileIPAdapter")]      HRESULT FileIPAdapter([out, retval] BSTR *newVal);
  268.         [propget, id(9), helpstring("property FileIPAddress")]      HRESULT FileIPAddress([out, retval] BSTR *newVal);
  269.         [propget, id(10), helpstring("property FilePort")]          HRESULT FilePort([out, retval] LONG *lPort);
  270.         [propget, id(11), helpstring("property TriggerIPAdapter")]  HRESULT TriggerIPAdapter([out, retval] BSTR *newVal);
  271.         [propget, id(12), helpstring("property TriggerIPAddress")]  HRESULT TriggerIPAddress([out, retval] BSTR *newVal);
  272.         [propget, id(13), helpstring("property TriggerPort")]       HRESULT TriggerPort([out, retval] LONG *lPort);
  273.         [propget, id(14),helpstring("property Languages")]          HRESULT Languages([out, retval] ITVEAttrMap* *ppVal);
  274.         [propget, id(15),helpstring("property SDPLanguages")]       HRESULT SDPLanguages([out, retval] ITVEAttrMap* *ppVal);
  275.         [propget, id(16),helpstring("property Bandwidth")]          HRESULT Bandwidth([out, retval] LONG *lVal);
  276.         [propget, id(17),helpstring("property BandwidthInfo")]      HRESULT BandwidthInfo([out, retval] BSTR *newVal);
  277.         [propget, id(18),helpstring("property Attributes")]         HRESULT Attributes([out, retval] ITVEAttrMap* *ppVal);
  278.  
  279.         [propget, id(19),helpstring("property Rest")]               HRESULT Rest([out, retval] ITVEAttrMap* *ppVal);
  280.         [         id(20),helpstring("method Initialize")]           HRESULT Initialize([in] BSTR newVal);
  281.     };
  282.  
  283.     [
  284.         object,
  285.         uuid(05500203-FAA5-4df9-8246-BFC23AC5CEA8),
  286. //      dual,
  287.         hidden,
  288.         helpstring("ITVEVariation_Helper Interface"),
  289.         pointer_default(unique)
  290.     ]
  291.     interface ITVEVariation_Helper : IUnknown
  292.     {
  293.         [           id(1),  helpstring("method ConnectParent")]         HRESULT ConnectParent([in] ITVEEnhancement *pEnhancement);
  294.         [           id(2),  helpstring("method DefaultTo")]             HRESULT DefaultTo([in] ITVEVariation *pVariationBase);
  295.         [           id(3),  helpstring("method SetTriggerIPAdapter")]   HRESULT SetTriggerIPAdapter([in] BSTR bstrBuff);
  296.         [           id(4),  helpstring("method SetFileIPAdapter")]      HRESULT SetFileIPAdapter([in] BSTR bstrBuff);
  297.         [           id(5),  helpstring("method SubParseSDP")]           HRESULT SubParseSDP(const BSTR *pbstrSDP, BOOL *pfMissingMedia);
  298.         [           id(6),  helpstring("method ParseCBTrigger")]        HRESULT ParseCBTrigger(BSTR bstrTrig);
  299.         [           id(7),  helpstring("method FinalParseSDP")]         HRESULT FinalParseSDP();
  300.         [           id(8),  helpstring("method UpdateVariation")]       HRESULT UpdateVariation(ITVEVariation *pVarNew, long *plNVAR_grfChanged);
  301.         [           id(9),  helpstring("method InitAsXOver")]           HRESULT InitAsXOver();
  302.         [           id(11), helpstring("method NewXOverLink")]          HRESULT NewXOverLink([in] BSTR bstrLine21Trigger);
  303.         [           id(12), helpstring("method RemoveYourself")]        HRESULT RemoveYourself();
  304.         [propput,   id(13), helpstring("property MediaTitle")]          HRESULT MediaTitle([in] BSTR bstrBuff);
  305.         [propput,   id(14), helpstring("property IsValid")]             HRESULT IsValid([in] VARIANT_BOOL fValid);
  306.         [           id(15), helpstring("method DumpToBSTR")]            HRESULT DumpToBSTR([out] BSTR *bstrBuff);
  307.     };
  308.  
  309.     [
  310.         object,
  311.         uuid(05500113-FAA5-4df9-8246-BFC23AC5CEA8),
  312.         dual,
  313.         helpstring("ITVEVariations Interface"),
  314.         pointer_default(unique)
  315.     ]   
  316.     interface ITVEVariations : IDispatch
  317.     {
  318.         [propget, id(DISPID_NEWENUM), restricted, helpstring("property _NewEnum")] HRESULT _NewEnum([out, retval] IUnknown **pCollection);
  319.         [propget, id(COLLECTID_Count),  helpstring("property Count")]       HRESULT Count([out, retval] long *pVal);
  320.         [propget, id(COLLECTID_Item),   helpstring("property Item")]        HRESULT Item([in] VARIANT var, [out, retval] ITVEVariation * *pVal);
  321.         [         id(COLLECTID_Add),    helpstring("method Add")]           HRESULT Add([in] ITVEVariation *pEnh);
  322.         [         id(COLLECTID_Remove), helpstring("method Remove")]        HRESULT Remove([in] VARIANT var);
  323.         [         id(COLLECTID_RemoveAll), helpstring("method RemoveAll")]  HRESULT RemoveAll();
  324.         [         id(COLLECTID_Insert), helpstring("method Insert")]        HRESULT Insert([in] int iLoc, [in] ITVEVariation *pEnh);
  325.     };
  326. // ---------------------------------------------------
  327.     [
  328.         object,
  329.         uuid(05500104-FAA5-4df9-8246-BFC23AC5CEA8),
  330.         dual,
  331.         helpstring("ITVEEnhancement Interface"),
  332.         pointer_default(unique)
  333.     ]
  334.     interface ITVEEnhancement : IDispatch
  335.     {
  336.         [propget, id(1),  helpstring("property Parent")]            HRESULT Parent([out, retval] IUnknown* *pVal);
  337.         [propget, id(2),  helpstring("property Service")]           HRESULT Service([out, retval] ITVEService* *pVal);
  338.         [propget, id(3),  helpstring("property Variations")]        HRESULT Variations([out, retval] ITVEVariations* *pVal);
  339.  
  340.         [propget, id(4),  helpstring("property IsValid")]           HRESULT IsValid([out, retval] VARIANT_BOOL *pVal);
  341.         [propget, id(5),  helpstring("property ProtocolVersion")]   HRESULT ProtocolVersion([out, retval] BSTR *pVal);
  342.         [propget, id(6),  helpstring("property SessionUserName")]   HRESULT SessionUserName([out, retval] BSTR *pVal);
  343.         [propget, id(7),  helpstring("property SessionId")]         HRESULT SessionId([out, retval] LONG *plVal);
  344.         [propget, id(8),  helpstring("property SessionVersion")]    HRESULT SessionVersion([out, retval] LONG *plVal);
  345.         [propget, id(9),  helpstring("property SessionIPAddress")]  HRESULT SessionIPAddress([out, retval] BSTR *pVal);
  346.         [propget, id(10), helpstring("property SessionName")]       HRESULT SessionName([out, retval] BSTR *pVal);
  347.         [propget, id(11), helpstring("property EmailAddresses")]    HRESULT EmailAddresses([out, retval] ITVEAttrMap* *pVal);
  348.         [propget, id(12), helpstring("property PhoneNumbers")]      HRESULT PhoneNumbers([out, retval] ITVEAttrMap* *pVal);
  349.  
  350.         [propget, id(13), helpstring("property Description")]       HRESULT Description([out, retval] BSTR *pVal);
  351.         [propput, id(13), helpstring("property Description")]       HRESULT Description([in] BSTR newVal);
  352.         [propget, id(14), helpstring("property DescriptionURI")]    HRESULT DescriptionURI([out, retval] BSTR *pVal);
  353.  
  354.         [propget, id(15), helpstring("property UUID")]              HRESULT UUID([out, retval] BSTR *pVal);
  355.         [propget, id(16), helpstring("property StartTime")]         HRESULT StartTime([out, retval] DATE *pVal);
  356.         [propget, id(17), helpstring("property StopTime")]          HRESULT StopTime([out, retval] DATE *pVal);
  357.         [propget, id(18), helpstring("property IsPrimary")]         HRESULT IsPrimary([out, retval] VARIANT_BOOL *pVal);
  358.  
  359.         [propget, id(19), helpstring("property Type")]              HRESULT Type([out, retval] BSTR *pVal);
  360.         [propget, id(20), helpstring("property TveType")]           HRESULT TveType([out, retval] BSTR *pVal);
  361.         [propget, id(21), helpstring("property TveSize")]           HRESULT TveSize([out, retval] LONG *plVal);
  362.         [propget, id(23), helpstring("property TveLevel")]          HRESULT TveLevel([out, retval] double *pVal);
  363.     
  364.         [propget, id(24), helpstring("property Attributes")]        HRESULT Attributes([out, retval] ITVEAttrMap* *pVal);
  365.         [propget, id(25), helpstring("property Rest")]              HRESULT Rest([out, retval] ITVEAttrMap* *pVal);
  366.  
  367.         [propget, id(26), helpstring("property SAPHeaderBits")]     HRESULT SAPHeaderBits([out, retval] short *pVal);
  368.         [propget, id(27), helpstring("property SAPAuthLength")]     HRESULT SAPAuthLength([out, retval] short *pVal);
  369.         [propget, id(28), helpstring("property SAPMsgIDHash")]      HRESULT SAPMsgIDHash([out, retval] LONG *pVal);
  370.         [propget, id(29), helpstring("property SAPSendingIP")]      HRESULT SAPSendingIP([out, retval] BSTR *pVal);
  371.         [propget, id(30), helpstring("property SAPAuthData")]       HRESULT SAPAuthData([out, retval] BSTR *pVal);
  372.  
  373.         [         id(31), helpstring("method ParseAnnouncement")]   HRESULT ParseAnnouncement([in] BSTR bstrAdapter, [in] const BSTR *pbstVal, [out] long *plgrfParseError, [out] long *plLineError);
  374.     };
  375.  
  376.  
  377.     [
  378.         object,
  379.         uuid(05500204-FAA5-4df9-8246-BFC23AC5CEA8),
  380. //      dual,
  381.         hidden,
  382.         helpstring("ITVEEnhancement_Helper Interface"),
  383.         pointer_default(unique)
  384.     ]
  385.     interface ITVEEnhancement_Helper : IUnknown
  386.     {
  387.         [id(0), helpstring("method ConnectParent")]     HRESULT ConnectParent(ITVEService *pService);
  388.         [id(1), helpstring("method Activate")]          HRESULT Activate();
  389.         [id(2), helpstring("method Deactivate")]        HRESULT Deactivate();
  390.         [id(3), helpstring("method UpdateEnhancement")] HRESULT UpdateEnhancement([in] ITVEEnhancement *pEnhNew,[out] long *plNENH_grfChanged);
  391.         [id(4), helpstring("method InitAsXOver")]       HRESULT InitAsXOver();
  392.         [id(5), helpstring("method NewXOverLink")]      HRESULT NewXOverLink([in] BSTR bstrLine21Trigger);
  393.         [id(6), helpstring("method RemoveYourself")]    HRESULT RemoveYourself();
  394.         [id(7), helpstring("method DumpToBSTR")]        HRESULT DumpToBSTR([out] BSTR *pbstrBuff);
  395.     };
  396.  
  397.  
  398.     [
  399.         object,
  400.         uuid(05500114-FAA5-4df9-8246-BFC23AC5CEA8),
  401.         dual,
  402.         helpstring("ITVEEnhancements Interface"),
  403.         pointer_default(unique)
  404.     ]
  405.  
  406.     interface ITVEEnhancements : IDispatch
  407.     {
  408.         [propget, id(DISPID_NEWENUM), restricted, helpstring("property _NewEnum")] HRESULT _NewEnum([out, retval] IUnknown **pCollection);
  409.         [propget, id(COLLECTID_Count),  helpstring("property Count")]       HRESULT Count([out, retval] long *pVal);
  410.         [propget, id(COLLECTID_Item),   helpstring("property Item")]        HRESULT Item([in] VARIANT var, [out, retval] ITVEEnhancement * *pVal);
  411.         [         id(COLLECTID_Add),    helpstring("method Add")]           HRESULT Add([in] ITVEEnhancement *pEnh);
  412.         [         id(COLLECTID_Remove), helpstring("method Remove")]        HRESULT Remove([in] VARIANT var);
  413.         [         id(COLLECTID_RemoveAll), helpstring("method RemoveAll")]  HRESULT RemoveAll();
  414.         [         id(COLLECTID_Insert), helpstring("method Insert")]        HRESULT Insert([in] int iLoc, [in] ITVEEnhancement *pEnh);
  415.     };
  416. // ---------------------------------------------------
  417.  
  418.     [
  419.         object,
  420.         uuid(05500105-FAA5-4df9-8246-BFC23AC5CEA8),
  421.         dual,
  422.         helpstring("ITVEService Interface"),
  423.         pointer_default(unique)
  424.     ]
  425.     interface ITVEService : IDispatch
  426.     {
  427.         [propget, id(1), helpstring("property Parent")]         HRESULT Parent([out, retval] IUnknown* *pVal);
  428.         [propget, id(2), helpstring("property Enhancements")]   HRESULT Enhancements([out, retval] ITVEEnhancements* *pVal);
  429.         [propget, id(3), helpstring("property Description")]    HRESULT Description([out, retval] BSTR *pVal);
  430.         [propput, id(3), helpstring("property Description")]    HRESULT Description([in] BSTR newVal);
  431.         [         id(4), helpstring("method Activate")]         HRESULT Activate();     // used in tuning, turns on announcement
  432.         [         id(5), helpstring("method Deactivate")]       HRESULT Deactivate();       // used in tuning, turns off announcement
  433.         [propget, id(6), helpstring("property XOverLinks")]     HRESULT XOverLinks([out, retval] ITVETracks* *pVal);    // returns ITVETracks (Collection)
  434.         [propget, id(7),helpstring("property XOverEnhancement")] HRESULT XOverEnhancement([out, retval] ITVEEnhancement* *pVal);    // special for tree view...
  435.         [         id(8), helpstring("method NewXOverLink")]     HRESULT NewXOverLink([in] BSTR bstrLine21Trigger);
  436.             // Set date offset used added to dates before expiring.  
  437.             //  Used when doing playback recorded shows, offseting expire dates by this amount
  438.         [propget, id(9), helpstring("property ExpireOffset")]   HRESULT ExpireOffset([out, retval] DATE *pVal);
  439.         [propput, id(9), helpstring("property ExpireOffset")]   HRESULT ExpireOffset([in] DATE newVal);
  440.                 // return the ITVEAttrTimeQ list giving dates of IUnknowns in this service are due to expire
  441.         [propget, id(10), helpstring("property ExpireQueue")]   HRESULT ExpireQueue([out, retval] ITVEAttrTimeQ* *pVal);
  442.                 // Expires any items earlier than the specified date + ExpireOffset
  443.                 //    If ezactly zero, Date defaults to <NOW>.
  444.         [         id(11),helpstring("method ExpireForDate")]    HRESULT ExpireForDate([in] DATE dateExpireTime);
  445.                 // Mark Service active, only one Active service currently allowed .. turns off all others.
  446.         [propget, id(12), helpstring("IsActive")]               HRESULT IsActive([out, retval] VARIANT_BOOL *fIsActive);
  447.                 // save and restore an arbitrary property on this service... (Useful with ITVENavAid::CacheState())
  448.         [propput, id(13), helpstring("Property")]               HRESULT Property([in] BSTR bstrPropName, BSTR bstrPropVal);
  449.         [propget, id(13), helpstring("Property")]               HRESULT Property([in] BSTR bstrPropName, [out, retval] BSTR *pbstrPropVal);
  450.     };
  451.  
  452.     [
  453.         object,
  454.         uuid(05500205-FAA5-4df9-8246-BFC23AC5CEA8),
  455. //      dual,
  456.         hidden,
  457.         helpstring("ITVEService_Helper Interface"),
  458.         pointer_default(unique)
  459.     ]
  460.     interface ITVEService_Helper : IUnknown
  461.     {
  462.         [         id(1),  helpstring("method ConnectParent")]               HRESULT ConnectParent([in] ITVESupervisor *pSupervisor);
  463.         [         id(2),  helpstring("method ParseCBAnnouncement")]         HRESULT ParseCBAnnouncement([in] BSTR bstrFileTrigAdapter,[in] BSTR *pbstrBuff);
  464.         [         id(3),  helpstring("method SetAnncIPValues")]             HRESULT SetAnncIPValues([in] BSTR bstrAnncIPAdapter,[in] BSTR bstrAnncIPAddress,[in] LONG lAnncPort);
  465.         [         id(4),  helpstring("method GetAnncIPValues")]             HRESULT GetAnncIPValues([in] BSTR *pbstrAnncIPAdapter,[in] BSTR *pbstrAnncIPAddress,[in] LONG *plAnncPort);
  466.         [         id(5),  helpstring("method InitXOverEnhancement")]        HRESULT InitXOverEnhancement();
  467.         [         id(6),  helpstring("method AddToExpireQueue")]            HRESULT AddToExpireQueue([in] DATE dateExpires, [in] IUnknown *punkItem);
  468.         [         id(7),  helpstring("method ChangeInExpireQueue")]         HRESULT ChangeInExpireQueue([in] DATE dateExpires, [in] IUnknown *punkItem);
  469.         [         id(8),  helpstring("method RemoveFromExpireQueue")]       HRESULT RemoveFromExpireQueue([in] IUnknown *punkItem);
  470.         [         id(9),  helpstring("method RemoveEnhFilesFromExpireQueue")]   HRESULT RemoveEnhFilesFromExpireQueue([in] ITVEEnhancement *pEnhancement);
  471.         [propget, id(10), helpstring("method ExpireQueueChangeCount")]      HRESULT ExpireQueueChangeCount([out, retval] long *pChangeCount);
  472.         [         id(11), helpstring("method RemoveYourself")]              HRESULT RemoveYourself();
  473.         [         id(12), helpstring("method DumpToBSTR")]                  HRESULT DumpToBSTR([out] BSTR *pbstrBuff);
  474.     };
  475.  
  476.  
  477.     [
  478.         object,
  479.         uuid(05500305-FAA5-4df9-8246-BFC23AC5CEA8),
  480.         dual,
  481.         helpstring("ITVEFeature Interface (Inherits ITVEService)"),
  482.         pointer_default(unique)
  483.     ]
  484.     interface ITVEFeature : ITVEService
  485.     {
  486.             // New methods just for the Feature
  487.         [id(101),       helpstring("method TuneTo")]                    HRESULT TuneTo([in] BSTR bstrStation, [in] BSTR bstrIPAdapter);
  488.         [id(102),       helpstring("method ReTune")]                    HRESULT ReTune([in] ITVEService *pService);
  489.         [id(103),       helpstring("method BindToSupervisor")]          HRESULT BindToSupervisor([in] ITVESupervisor *pTVESupervisor);
  490.             // these are incoming events called by Supervisor ((_ITVEvents).. Must match
  491.         [id(2101),  helpstring("method NotifyTVETune")]                 HRESULT NotifyTVETune([in] NTUN_Mode tuneMode, [in] ITVEService *pService, [in] BSTR bstrDescription, [in] BSTR bstrIPAdapter);
  492.         [id(2102),  helpstring("method NotifyTVEEnhancementNew")]       HRESULT NotifyTVEEnhancementNew([in] ITVEEnhancement *pEnh);
  493.         [id(2103),  helpstring("method NotifyTVEEnhancementUpdated")]   HRESULT NotifyTVEEnhancementUpdated([in] ITVEEnhancement *pEnh, [in] long lChangedFlags);   // changedFlags : NENH_grfDiff
  494.         [id(2104),  helpstring("method NotifyTVEEnhancementStarting")]  HRESULT NotifyTVEEnhancementStarting([in] ITVEEnhancement *pEnh);
  495.         [id(2105),  helpstring("method NotifyTVEEnhancementExpired")]   HRESULT NotifyTVEEnhancementExpired([in] ITVEEnhancement *pEnh);
  496.         [id(2106),  helpstring("method NotifyTVETriggerNew")]           HRESULT NotifyTVETriggerNew([in] ITVETrigger *pTrigger,[in]  BOOL fActive);
  497.         [id(2107),  helpstring("method NotifyTVETriggerUpdated")]       HRESULT NotifyTVETriggerUpdated([in] ITVETrigger *pTrigger,[in]  BOOL fActive, [in] long lChangedFlags);    // changedFlags : NTRK_grfDiff
  498.         [id(2108),  helpstring("method NotifyTVETriggerExpired")]       HRESULT NotifyTVETriggerExpired([in] ITVETrigger *pTrigger,[in]  BOOL fActive);
  499.         [id(2109),  helpstring("method NotifyTVEPackage")]              HRESULT NotifyTVEPackage([in] NPKG_Mode engPkgMode, [in] ITVEVariation *pVariation, [in] BSTR bstrUUID, [in] long  cBytesTotal, [in] long  cBytesReceived);
  500.         [id(2110),  helpstring("method NotifyTVEFile")]                 HRESULT NotifyTVEFile([in] NFLE_Mode engFileMode, [in] ITVEVariation *pVariation, [in] BSTR bstrUrlName, [in] BSTR bstrFileName);
  501.         [id(2111),  helpstring("method NotifyTVEAuxInfo")]              HRESULT NotifyTVEAuxInfo([in] NWHAT_Mode engAuxInfoMode, [in] BSTR bstrAuxInfoString, [in] long lChangedFlags, [in] long lErrorLine); // WhatIsIt is NWHAT_Mode - lChangedFlags is NENH_grfDiff or NTRK_grfDiff treated as error bits 
  502.  
  503.     };
  504.  
  505.     [
  506.         object,
  507.         uuid(05500115-FAA5-4df9-8246-BFC23AC5CEA8),
  508.         dual,
  509.         helpstring("ITVEServices Interface"),
  510.         pointer_default(unique)
  511.     ]
  512.     interface ITVEServices : IDispatch
  513.     {
  514.         [propget, id(DISPID_NEWENUM),   restricted, helpstring("property _NewEnum")] HRESULT _NewEnum([out, retval] IUnknown **pCollection);
  515.         [propget, id(COLLECTID_Count),  helpstring("property Count")]       HRESULT Count([out, retval] long *pVal);
  516.         [propget, id(COLLECTID_Item),   helpstring("property Item")]        HRESULT Item([in] VARIANT var, [out, retval] ITVEService * *pVal);
  517.         [         id(COLLECTID_Add),    helpstring("method Add")]           HRESULT Add([in] ITVEService *pService);
  518.         [         id(COLLECTID_Remove), helpstring("method Remove")]        HRESULT Remove([in] VARIANT var);
  519.         [         id(COLLECTID_RemoveAll), helpstring("method RemoveAll")]  HRESULT RemoveAll();
  520.         [         id(COLLECTID_Insert), helpstring("method Insert")]        HRESULT Insert([in] int iLoc, [in] ITVEService *pService);
  521.     };
  522.  
  523.  
  524. // ---------------------------------------------------
  525.  
  526.     [
  527.         object,
  528.         uuid(05500106-FAA5-4df9-8246-BFC23AC5CEA8),
  529.         dual,
  530.         helpstring("ITVESupervisor Interface"),
  531.         pointer_default(unique)
  532.     ]
  533.  
  534.     interface ITVESupervisor : IDispatch
  535.     {
  536.         [propget, id(1), helpstring("property Services")]       HRESULT Services([out, retval] ITVEServices* *pVal);
  537.         [propget, id(2), helpstring("property Description")]    HRESULT Description([out, retval] BSTR *pVal);
  538.         [propput, id(2), helpstring("property Description")]    HRESULT Description([in] BSTR newVal);
  539.         [         id(3), helpstring("method TuneTo")]           HRESULT TuneTo([in] BSTR bstrDescription, [in] BSTR bstrIPAdapter);
  540.         [         id(4), helpstring("method ReTune")]           HRESULT ReTune([in] ITVEService *pService);
  541.  
  542.         [         id(5), helpstring("method NewXOverLink")]     HRESULT NewXOverLink([in] BSTR bstrLine21Trigger);
  543.                 // Expires any items earlier than the specified date + service.ExpireOffset
  544.                 //    If ezactly zero, Date defaults to <NOW>.
  545.         [         id(6), helpstring("method ExpireForDate")]    HRESULT ExpireForDate([in] DATE dateExpireTime);
  546.  
  547.                 // need to be here rather than Helper, since called from Filter, and Supervisor_Helper
  548.                 //    not in the proxy-stub DLL
  549.         [         id(7), restricted, helpstring("method InitStats")]    HRESULT InitStats();
  550.         [         id(8), restricted, helpstring("method GetStats")]     HRESULT GetStats([out] BSTR *pbstrBuff);  // CTVEStats
  551.     };
  552.  
  553.     [
  554.         object,
  555.         uuid(05500206-FAA5-4df9-8246-BFC23AC5CEA8),
  556.         dual,
  557.         hidden,
  558.         helpstring("ITVESupervisor_Helper Interface"),
  559.         pointer_default(unique)
  560.     ]
  561.     interface ITVESupervisor_Helper : IUnknown
  562.     {
  563.         [id(1), helpstring("method ConnectParent")]             HRESULT ConnectParent([in] IUnknown *pUnk);
  564.         [id(2), helpstring("method GetActiveService")]          HRESULT GetActiveService([out] ITVEService **ppActiveService);
  565.         [id(3), helpstring("method GetMCastManager")]           HRESULT GetMCastManager([out] ITVEMCastManager **pMCastManager);
  566.         [id(4), helpstring("method UnpackBuffer")]              HRESULT UnpackBuffer([in] IUnknown *pTVEVariation, [in] unsigned char *m_rgbData, [in] int cBytes);
  567.  
  568.         [id(5), helpstring("method NotifyEnhancement")]         HRESULT NotifyEnhancement([in] NENH_Mode enhMode,[in]  ITVEEnhancement *pEnhancement,[in] long lChangedFlags);  // changedFlags NENH_grfDiff
  569.         [id(6), helpstring("method NotifyTrigger")]             HRESULT NotifyTrigger([in] NTRK_Mode trgMode,[in]  ITVETrack *pTrack,[in]  long lChangedFlags);                 // changedFlags NTRK_grfDiff
  570.         [id(7), helpstring("method NotifyPackage")]             HRESULT NotifyPackage([in] NPKG_Mode pkgMode, [in] ITVEVariation *pVariation, [in] BSTR bstrPackageUUID, [in] long cBytesTotal, [in] long cBytesReceived);
  571.         [id(8), helpstring("method NotifyFile")]                HRESULT NotifyFile([in] NFLE_Mode fileMode, [in] ITVEVariation *pVariation, [in] BSTR bstrURLName, [in] BSTR bstrFileName);
  572.         [id(9), helpstring("method NotifyTune")]                HRESULT NotifyTune([in] NTUN_Mode tuneMode, [in] ITVEService *pService, [in] BSTR bstrDescription, [in] BSTR bstrIPAdapter);
  573.                         // WhatIsIt is NWHAT_Mode - lChangedFlags is NENH_grfDiff or NTRK_grfDiff treated as error bits
  574.         [id(10), helpstring("method NotifyAuxInfo")]            HRESULT NotifyAuxInfo([in] NWHAT_Mode whatMode, [in] BSTR bstrAuxInfoString, [in] long lgrfWhatDiff, [in] long lLineError);
  575.  
  576.         [id(11), helpstring("method NotifyEnhancement_XProxy")] HRESULT NotifyEnhancement_XProxy([in] NENH_Mode enhMode,[in] ITVEEnhancement *pEnhancement,[in] long lChangedFlags);    // changedFlags NENH_grfDiff
  577.         [id(12), helpstring("method NotifyTrigger_XProxy")]     HRESULT NotifyTrigger_XProxy([in] NTRK_Mode trgMode,[in]  ITVETrack *pTrack,[in]  long lChangedFlags);                  // changedFlags NTRK_grfDiff
  578.         [id(13), helpstring("method NotifyPackage_XProxy")]     HRESULT NotifyPackage_XProxy( NPKG_Mode pkgMode, ITVEVariation *pVariation,BSTR bstrPackageUUID, long cBytesTotal,long cBytesReceived);
  579.         [id(14), helpstring("method NotifyFile_XProxy")]        HRESULT NotifyFile_XProxy([in] NFLE_Mode fileMode, [in] ITVEVariation *pVariation, [in] BSTR bstrURLName, [in] BSTR bstrFileName);
  580.         [id(15), helpstring("method NotifyTune_XProxy")]        HRESULT NotifyTune_XProxy([in] NTUN_Mode tuneMode, [in] ITVEService *pService, [in] BSTR bstrDescription, [in] BSTR bstrIPAdapter);
  581.         [id(16), helpstring("method NotifyAuxInfo_XProxy")]     HRESULT NotifyAuxInfo_XProxy([in] NWHAT_Mode whatMode, [in] BSTR bstrAuxInfoString, [in] long lgrfWhatDiff,[in] long lLineError);
  582.  
  583.         [propget, id(17),  helpstring("property HaltFlags")]    HRESULT HaltFlags([out, retval] LONG *plGrfHaltFlags);
  584.         [propput, id(17),  helpstring("property HaltFlags")]    HRESULT HaltFlags([in] LONG lGrfHaltFlags);
  585.  
  586.         [         id(18),  helpstring("method RemoveAllListenersOnAdapter")]    HRESULT RemoveAllListenersOnAdapter([in] BSTR bstrAdapter);
  587.         [propget, id(19),  helpstring("method PossibleIPAdapterAddress")]       HRESULT PossibleIPAdapterAddress([in] int iAdapter, [out,retval] BSTR *pbstrIPAdapterAddr);
  588.         [         id(20), helpstring("method DumpToBSTR")]              HRESULT DumpToBSTR([out] BSTR *pbstrBuff);
  589.  
  590.         [propget, id(21), helpstring("property SupervisorGITProxy")]        HRESULT SupervisorGITProxy([out] ITVESupervisorGITProxy **ppSupervisorGITProxy);        // internal GIT refcounted pointer to supervisor 
  591.     };
  592.  
  593.     [
  594.         hidden,
  595.         object,
  596.         uuid(05500306-FAA5-4df9-8246-BFC23AC5CEA8),
  597.         dual,
  598.         helpstring("ITVESupervisorGITProxy Interface"),
  599.         pointer_default(unique)
  600.     ]
  601.  
  602.     interface ITVESupervisorGITProxy: IUnknown
  603.     {
  604.         [propget, id(1), helpstring("property Supervisor")]     HRESULT Supervisor([out, retval] ITVESupervisor **ppVal);
  605.         [propput, id(1), helpstring("property Supervisor")]     HRESULT Supervisor([in] ITVESupervisor  *pVal);
  606.     };
  607.  
  608. // ---------------------------------------------------
  609.  
  610.             // ---------------------------------
  611.     [
  612.         object,
  613.         uuid(05500121-FAA5-4df9-8246-BFC23AC5CEA8),
  614.         dual,
  615.         helpstring("ITVEAttrMap Interface"),
  616.         pointer_default(unique)
  617.     ]
  618.     interface ITVEAttrMap : IDispatch
  619.     {
  620.         [propget, id(DISPID_NEWENUM), restricted, helpstring("property _NewEnum")] HRESULT _NewEnum([out, retval] IUnknown **pCollection);
  621.         [propget, id(COLLECTID_Count),     helpstring("property Count")]   HRESULT Count([out, retval] long *pVal);
  622.         [propget, id(COLLECTID_Item),      helpstring("property Item")]    HRESULT Item([in] VARIANT var, [out, retval] BSTR *pVal);
  623.         [propget, id(COLLECTID_Key),       helpstring("property Key")]     HRESULT Key([in] VARIANT var, [out, retval] BSTR *pKey);
  624.         [         id(COLLECTID_Add),       helpstring("method Add")]       HRESULT Add([in] BSTR bstrKey, [in] BSTR bstrValue);
  625.         [         id(COLLECTID_Replace),   helpstring("method Replace")]   HRESULT Replace([in] BSTR bstrKey, [in] BSTR bstrValue);
  626.         [         id(COLLECTID_Remove),    helpstring("method Remove")]    HRESULT Remove([in] VARIANT var);
  627.         [         id(COLLECTID_RemoveAll), helpstring("method RemoveAll")] HRESULT RemoveAll();
  628.         [         id(7),                   helpstring("method Add1")]      HRESULT Add1(BSTR bstrValue);
  629.         [         id(8),                   helpstring("method DumpToBSTR")] HRESULT DumpToBSTR([out] BSTR *pDump);
  630.     };
  631.  
  632. // ---------------------------------------------------
  633.  
  634.             // ---------------------------------
  635.     [
  636.         object,
  637.         uuid(05500122-FAA5-4df9-8246-BFC23AC5CEA8),
  638.         dual,
  639.         helpstring("ITVEAttrTimeQ Interface"),
  640.         pointer_default(unique)
  641.     ]
  642.     interface ITVEAttrTimeQ : IDispatch
  643.     {
  644.         [propget, id(DISPID_NEWENUM), restricted, helpstring("property _NewEnum")] HRESULT _NewEnum([out, retval] IUnknown **pCollection);
  645.         [propget, id(COLLECTID_Count),     helpstring("property Count")]   HRESULT Count([out, retval] long *pVal);
  646.         [propget, id(COLLECTID_Item),      helpstring("property Item")]    HRESULT Item([in] VARIANT var, [out, retval] IUnknown **ppVal);
  647.         [propget, id(COLLECTID_Key),       helpstring("property Key")]     HRESULT Key([in] VARIANT var, [out, retval] DATE *pKey);
  648.         [         id(COLLECTID_Add),       helpstring("method Add")]       HRESULT Add([in] DATE dateKey, [in] IUnknown *pUnk);
  649.         [         id(COLLECTID_Remove),    helpstring("method Remove")]    HRESULT Remove([in] VARIANT var);
  650.         [         id(COLLECTID_RemoveAll), helpstring("method RemoveAll")] HRESULT RemoveAll();
  651.         [         id(COLLECTID_Update),    helpstring("method Update")]    HRESULT Update([in] DATE dateKey, [in] IUnknown *pUnk);
  652.         [         id(9),                   helpstring("method LockRead")]    HRESULT LockRead();
  653.         [         id(10),                  helpstring("method LockWrite")]   HRESULT LockWrite();
  654.         [         id(11),                  helpstring("method Unlock")]      HRESULT Unlock();
  655.         [         id(12),                  helpstring("method RemoveSimple")]    HRESULT RemoveSimple([in] VARIANT var);    // remove without calling var->RemoveYourself()
  656.         [         id(13),                  helpstring("method DumpToBSTR")] HRESULT DumpToBSTR([out] BSTR *pDump);
  657.     };
  658.  
  659. // ---------------------------------------------------
  660.     [
  661.         object,
  662.         uuid(05500130-FAA5-4df9-8246-BFC23AC5CEA8),
  663.         dual,
  664.         helpstring("ITVEMCast Interface"),
  665.         pointer_default(unique)
  666.     ]
  667.     interface ITVEMCast : IDispatch
  668.     {
  669.         [propget, id(1),  helpstring("property IPAdapter")]     HRESULT IPAdapter([out, retval] BSTR *pVal);
  670.         [propput, id(1),  helpstring("property IPAdapter")]     HRESULT IPAdapter([in] BSTR newVal);
  671.         [propget, id(2),  helpstring("property IPAddress")]     HRESULT IPAddress([out, retval] BSTR *pVal);
  672.         [propput, id(2),  helpstring("property IPAddress")]     HRESULT IPAddress([in] BSTR newVal);
  673.         [propget, id(3),  helpstring("property IPPort")]        HRESULT IPPort([out, retval] long *pVal);
  674.         [propput, id(3),  helpstring("property IPPort")]        HRESULT IPPort([in] long newVal);
  675.         [         id(4),  helpstring("method Join")]            HRESULT Join();
  676.         [         id(5),  helpstring("method Leave")]           HRESULT Leave();
  677.         [propget, id(6),  helpstring("property IsJoined")]      HRESULT IsJoined([out, retval] VARIANT_BOOL *pVal);
  678.         [propget, id(7),  helpstring("property IsSuspended")]   HRESULT IsSuspended([out, retval] VARIANT_BOOL *pVal);
  679.         [         id(8),  helpstring("method Suspend")]         HRESULT Suspend(VARIANT_BOOL fSuspend);
  680.         [propget, id(9),  helpstring("property PacketCount")]   HRESULT PacketCount([out, retval] long *pVal);
  681.         [propget, id(10), helpstring("property ByteCount")]     HRESULT ByteCount([out, retval] long *pVal);
  682.         [         id(11), helpstring("method KeepStats")]       HRESULT KeepStats(VARIANT_BOOL fKeepStats);
  683.         [         id(12), helpstring("method ResetStats")]      HRESULT ResetStats();
  684.         [         id(13), helpstring("method SetReadCallback")] HRESULT SetReadCallback([in] int nBuffers, [in] int iPrioritySetback, [in] IUnknown *pVal);
  685.         [         id(14), helpstring("method ConnectManager")]  HRESULT ConnectManager([in] ITVEMCastManager* pVal);
  686.         [propget, id(15), helpstring("property Manager")]       HRESULT Manager([out, retval] IUnknown* *ppVal);
  687.         [propget, id(16), helpstring("property QueueThreadId")] HRESULT QueueThreadId([out, retval] long* pVal);
  688.         [propput, id(16), helpstring("property QueueThreadId")] HRESULT QueueThreadId([in] long pVal);
  689.         [propget, id(17), helpstring("property WhatType")]      HRESULT WhatType([out, retval] NWHAT_Mode *pWhatType);
  690.         [propput, id(17), helpstring("property WhatType")]      HRESULT WhatType([in] NWHAT_Mode whatType);
  691.     };
  692.  
  693.     [
  694.         object,
  695.         uuid(05500131-FAA5-4df9-8246-BFC23AC5CEA8),
  696.         dual,
  697.         helpstring("ITVEMCasts Interface"),
  698.         pointer_default(unique)
  699.     ]
  700.     interface ITVEMCasts : IDispatch
  701.     {
  702.         [propget, id(DISPID_NEWENUM), restricted, helpstring("property _NewEnum")] HRESULT _NewEnum([out, retval] IUnknown **pCollection);
  703.         [propget, id(COLLECTID_Count),  helpstring("property Count")]       HRESULT Count([out, retval] long *pVal);
  704.         [propget, id(COLLECTID_Item),   helpstring("property Item")]        HRESULT Item([in] VARIANT var, [out, retval] ITVEMCast * *pVal);
  705.         [         id(COLLECTID_Add),    helpstring("method Add")]           HRESULT Add([in] ITVEMCast *punk);
  706.         [         id(COLLECTID_Remove), helpstring("method Remove")]        HRESULT Remove([in] VARIANT var);
  707.         [         id(COLLECTID_RemoveAll), helpstring("method RemoveAll")]  HRESULT RemoveAll();
  708.     };
  709.     [
  710.         object,
  711.         uuid(05500132-FAA5-4df9-8246-BFC23AC5CEA8),
  712.         dual,
  713.         helpstring("ITVEMCastManager Interface"),
  714.         pointer_default(unique)
  715.     ]
  716.     interface ITVEMCastManager : IDispatch
  717.     {
  718.         [propget, id(1), helpstring("property MCasts")]         HRESULT MCasts([out, retval] ITVEMCasts* *pVal);
  719.         [propget, id(2), helpstring("property Supervisor")]     HRESULT Supervisor([out, retval] ITVESupervisor* *ppSupervisor);
  720.         [propput, id(2), helpstring("property Supervisor")]     HRESULT Supervisor([in] ITVESupervisor *pSupervisor);
  721.         [         id(3), helpstring("method AddMulticast")]     HRESULT AddMulticast([in] NWHAT_Mode whatType, [in] BSTR bsAdapter, [in] BSTR bsIPAddress, [in] LONG ulIPPort, [in] LONG cBuffers, [in] IUnknown *pICallback, [out] ITVEMCast **ppMCastAdded);
  722.         [         id(4), helpstring("method FindMulticast")]    HRESULT FindMulticast([in] BSTR bstrIPAdapter, [in] BSTR bstrIPAddress, [in] LONG sPort,  [out] ITVEMCast **ppMCast, [out] LONG *pcMatches);
  723.         [         id(5), helpstring("method RemoveMulticast")]  HRESULT RemoveMulticast(ITVEMCast *pMCast);
  724.         [         id(6), helpstring("method JoinAll")]          HRESULT JoinAll();
  725.         [         id(7), helpstring("method LeaveAll")]         HRESULT LeaveAll();
  726.         [         id(8), helpstring("method SuspendAll")]       HRESULT SuspendAll([in] VARIANT_BOOL fSuspend);
  727.         [         id(9), helpstring("method Lock_")]            HRESULT Lock_();
  728.         [         id(10), helpstring("method Unlock_")]         HRESULT Unlock_();
  729.         [         id(11), helpstring("method DumpStatsToBSTR")] HRESULT DumpStatsToBSTR(int iType, BSTR *pBSTR);
  730.         [propget, id(13), helpstring("property HaltFlags")]     HRESULT HaltFlags([out, retval] LONG *plGrfHaltFlags);
  731.         [propput, id(13), helpstring("property HaltFlags")]     HRESULT HaltFlags([in] LONG lGrfHaltFlags);
  732.     };
  733.  
  734.     [
  735.         object,
  736.         uuid(05500232-FAA5-4df9-8246-BFC23AC5CEA8),
  737. //      dual,
  738.         hidden,
  739.         helpstring("ITVEMCastManager_Helper Interface"),
  740.         pointer_default(unique)
  741.     ]
  742.     interface ITVEMCastManager_Helper : IUnknown
  743.     {
  744.         [         id(1), helpstring("method DumpString")]           HRESULT DumpString(BSTR bstrDump);  // writes string to a Dump.txt
  745.         [         id(2), helpstring("method CreateQueueThread")]    HRESULT CreateQueueThread();
  746.         [         id(3), helpstring("method KillQueueThread")]      HRESULT KillQueueThread();
  747.         [         id(4), helpstring("method PostToQueueThread")]    HRESULT PostToQueueThread(UINT uiMsg, WPARAM wParam, LPARAM lParam);
  748.         [         id(5), helpstring("method GetPacketCounts")]      HRESULT GetPacketCounts([out] LONG *pCPackets, [out] LONG *pCPacketsDropped, [out] LONG *pCPacketsDroppedTotal);
  749.     };
  750.  
  751.  
  752.     [
  753.         object,
  754.         uuid(05500133-FAA5-4df9-8246-BFC23AC5CEA8),
  755.         dual,
  756.         helpstring("ITVEMCastCallback Interface"),
  757.         pointer_default(unique)
  758.     ]
  759.     interface ITVEMCastCallback : IDispatch
  760.     {
  761.         [id(1), helpstring("method SetMCast")]              HRESULT SetMCast(ITVEMCast *pMCast);
  762.         [id(2), helpstring("method ProcessPacket")]         HRESULT ProcessPacket(unsigned char *pchBuffer, long cBytes, long lPacketId);
  763.         [id(3), helpstring("method PostPacket")]            HRESULT PostPacket(unsigned char *pchBuffer, long cBytes, long wPacketId);
  764.     };
  765.  
  766.  
  767.  
  768.  
  769.                     // ................ specific callbacks ..............
  770.     [
  771.         object,
  772.         uuid(05500141-FAA5-4df9-8246-BFC23AC5CEA8),
  773.         dual,
  774.         helpstring("ITVECBAnnc Interface"),
  775.         pointer_default(unique)
  776.     ]
  777.     interface ITVECBAnnc : IDispatch
  778.     {
  779.         [id(1), helpstring("method Init")] HRESULT Init(BSTR bstrFileTrigAdapter, ITVEService *pService);           // want ITVEService here
  780.     };
  781.     [
  782.         object,
  783.         uuid(05500142-FAA5-4df9-8246-BFC23AC5CEA8),
  784.         dual,
  785.         helpstring("ITVECBTrig Interface"),
  786.         pointer_default(unique)
  787.     ]
  788.     interface ITVECBTrig : IDispatch
  789.     {
  790.         [id(1), helpstring("method Init")] HRESULT Init(ITVEVariation *pIVariation);
  791.     };
  792.     [
  793.         object,
  794.         uuid(05500143-FAA5-4df9-8246-BFC23AC5CEA8),
  795.         dual,
  796.         helpstring("ITVECBFile Interface"),
  797.         pointer_default(unique)
  798.     ]
  799.     interface ITVECBFile : IDispatch
  800.     {
  801.         [id(1), helpstring("method Init")] HRESULT Init(ITVEVariation *pIVariation, ITVEService *pIService);
  802.     };
  803.     [
  804.         object,
  805.         uuid(05500144-FAA5-4df9-8246-BFC23AC5CEA8),
  806.         dual,
  807.         helpstring("ITVECBDummy Interface"),
  808.         pointer_default(unique)
  809.     ]
  810.     interface ITVECBDummy : IDispatch
  811.     {
  812.         [id(1), helpstring("method Init")] HRESULT Init(int i);
  813.     };
  814.  
  815.  
  816. // ----------------------------------------------------
  817.     [
  818.         object,
  819.         uuid(05500151-FAA5-4df9-8246-BFC23AC5CEA8),
  820.         dual,
  821.         helpstring("ITVEFile Interface"),
  822.         pointer_default(unique)
  823.     ]
  824.     interface ITVEFile : IDispatch
  825.     {
  826.         [         id(1),  helpstring("method InitializeFile")]      HRESULT InitializeFile([in] ITVEVariation *pVaria, [in] BSTR bsName, [in] BSTR bsLoc, [in] DATE dateExpires);
  827.         [         id(2),  helpstring("method InitializePackage")]   HRESULT InitializePackage([in] ITVEVariation *pVaria, [in] BSTR bsName, [in] BSTR bsLoc, [in] DATE dateExpires);
  828.         [propget, id(3),  helpstring("property Description")]       HRESULT Description([out, retval] BSTR* pBstrDesc);
  829.         [propget, id(4),  helpstring("property Location")]          HRESULT Location([out, retval] BSTR* pBstrLoc);
  830.         [propget, id(5),  helpstring("property ExpireTime")]        HRESULT ExpireTime([out, retval] DATE* pDateExpires);
  831.         [propget, id(6),  helpstring("property IsPackage")]         HRESULT IsPackage([out, retval] BOOL* pfVal);
  832.         [propget, id(7),  helpstring("property Variation")]         HRESULT Variation([out, retval] ITVEVariation* *pVal);
  833.         [propget, id(8),  helpstring("property Service")]           HRESULT Service([out, retval] ITVEService* *pVal);
  834.         [         id(9),  helpstring("method RemoveYourself")]      HRESULT RemoveYourself();
  835.         [         id(10), helpstring("method DumpToBSTR")]          HRESULT DumpToBSTR([out] BSTR *pBstrDump);
  836.     };
  837.  
  838.  
  839. // ----------------------------------------------------
  840. //   ITVENavAid
  841. // ----------------------------------------------------
  842.  
  843. [
  844.     object,
  845.     uuid (05500160-FAA5-4df9-8246-BFC23AC5CEA8),
  846.     dual,
  847.     helpstring("ITVENavAid Interface"),
  848.     pointer_default(unique)
  849. ]
  850. interface ITVENavAid : IDispatch
  851. {
  852.         [propput, id(1),  helpstring("property WebBrowserApp")]         HRESULT WebBrowserApp([in] IDispatch *pWebBrowser);
  853.         [propget, id(1),  helpstring("property WebBrowserApp")]         HRESULT WebBrowserApp([out, retval] IDispatch **ppWebBrowser);
  854.         [propget, id(2),  helpstring("property TVETriggerCtrl")]        HRESULT TVETriggerCtrl([out, retval] ITVETriggerCtrl **ppTriggerCtrl);
  855.         [propput, id(3),  helpstring("property EnableAutoTriggering")]  HRESULT EnableAutoTriggering([in] long lAutoTriggers);
  856.         [propget, id(3),  helpstring("property EnableAutoTriggering")]  HRESULT EnableAutoTriggering([out, retval] long *plAutoTriggers);
  857.         [propget, id(4),  helpstring("property ActiveVariation")]       HRESULT ActiveVariation([out, retval] ITVEVariation **ppActiveVariation);
  858.         [propput, id(4),  helpstring("property ActiveVariation")]       HRESULT ActiveVariation([in] ITVEVariation *pActiveVariation);
  859.         [propget, id(5),  helpstring("property TVEFeature")]            HRESULT TVEFeature([out, retval] ITVEFeature **ppTVEFeature);
  860.         [propget, id(6),  helpstring("property CacheState")]            HRESULT CacheState([out, retval] BSTR *pbstrBuff);
  861.         [propput, id(6),  helpstring("property CacheState")]            HRESULT CacheState([in] BSTR bstrBuff);
  862.         [       , id(7),  helpstring("method NavUsingTVETrigger")]      HRESULT NavUsingTVETrigger([in] ITVETrigger *pTrigger, [in] long lForceNav, [in] long lForceExec);
  863.         [       , id(8),  helpstring("method ExecScript")]              HRESULT ExecScript([in] BSTR bstrScript, [in] BSTR bstrLanguage);
  864.         [       , id(9),  helpstring("method Navigate")]                HRESULT Navigate([in] VARIANT *URL,[in] VARIANT *Flags,[in] VARIANT *TargetFrameName, [in] VARIANT *PostData, [in] VARIANT *Headers);
  865.         [propget, id(10), helpstring("property CurrTVEName")]           HRESULT CurrTVEName([out, retval] BSTR *pbstrName);
  866.         [propget, id(11), helpstring("property CurrTVEURL")]            HRESULT CurrTVEURL([out, retval] BSTR *pbstrURL);
  867.  
  868.         // these are incoming sinkn events called by Supervisor ((_ITVEvents).. ID's Must match (I think)
  869.         // &DIID__ITVEEvents
  870.         [id(2101),  helpstring("method NotifyTVETune")]                 HRESULT NotifyTVETune([in] NTUN_Mode tuneMode, [in] ITVEService *pService, [in] BSTR bstrDescription, [in] BSTR bstrIPAdapter);
  871.         [id(2102),  helpstring("method NotifyTVEEnhancementNew")]       HRESULT NotifyTVEEnhancementNew([in] ITVEEnhancement *pEnh);
  872.         [id(2103),  helpstring("method NotifyTVEEnhancementUpdated")]   HRESULT NotifyTVEEnhancementUpdated([in] ITVEEnhancement *pEnh, [in] long lChangedFlags);   // changedFlags : NENH_grfDiff
  873.         [id(2104),  helpstring("method NotifyTVEEnhancementStarting")]  HRESULT NotifyTVEEnhancementStarting([in] ITVEEnhancement *pEnh);
  874.         [id(2105),  helpstring("method NotifyTVEEnhancementExpired")]   HRESULT NotifyTVEEnhancementExpired([in] ITVEEnhancement *pEnh);
  875.         [id(2106),  helpstring("method NotifyTVETriggerNew")]           HRESULT NotifyTVETriggerNew([in] ITVETrigger *pTrigger,[in]  BOOL fActive);
  876.         [id(2107),  helpstring("method NotifyTVETriggerUpdated")]       HRESULT NotifyTVETriggerUpdated([in] ITVETrigger *pTrigger,[in]  BOOL fActive, [in] long lChangedFlags);    // changedFlags : NTRK_grfDiff
  877.         [id(2108),  helpstring("method NotifyTVETriggerExpired")]       HRESULT NotifyTVETriggerExpired([in] ITVETrigger *pTrigger,[in]  BOOL fActive);
  878.         [id(2109),  helpstring("method NotifyTVEPackage")]              HRESULT NotifyTVEPackage([in] NPKG_Mode engPkgMode, [in] ITVEVariation *pVariation, [in] BSTR bstrUUID, [in] long  cBytesTotal, [in] long  cBytesReceived);
  879.         [id(2110),  helpstring("method NotifyTVEFile")]                 HRESULT NotifyTVEFile([in] NFLE_Mode engFileMode, [in] ITVEVariation *pVariation, [in] BSTR bstrUrlName, [in] BSTR bstrFileName);
  880.         [id(2111),  helpstring("method NotifyTVEAuxInfo")]              HRESULT NotifyTVEAuxInfo([in] NWHAT_Mode engAuxInfoMode, [in] BSTR bstrAuxInfoString, [in] long lChangedFlags, [in] long lErrorLine); // WhatIsIt is NWHAT_Mode - lChangedFlags is NENH_grfDiff or NTRK_grfDiff treated as error bits 
  881.  
  882.  
  883.         // &DIID_DWebBrowserEvents2, 
  884.  
  885.         [id(0x66),  helpstring("method NotifyStatusTextChange")]        HRESULT NotifyStatusTextChange(BSTR Text);
  886.         [id(0x6c),  helpstring("method NotifyProgressChange")]          HRESULT NotifyProgressChange(LONG Progress, LONG ProgressMax);
  887.         [id(0x69),  helpstring("method NotifyCommandStateChange")]      HRESULT NotifyCommandStateChange(LONG Command, VARIANT_BOOL Enable);
  888.         [id(0x6a),  helpstring("method NotifyDownloadBegin")]           HRESULT NotifyDownloadBegin();
  889.         [id(0x68),  helpstring("method NotifyDownloadComplete")]        HRESULT NotifyDownloadComplete();
  890.         [id(0x71),  helpstring("method NotifyTitleChange")]             HRESULT NotifyTitleChange(BSTR Text);
  891.         [id(0x70),  helpstring("method NotifyPropertyChange")]          HRESULT NotifyPropertyChange(BSTR szProperty);
  892.         [id(0xfa),  helpstring("method NotifyBeforeNavigate2")]         HRESULT NotifyBeforeNavigate2(IDispatch * pDisp, VARIANT * URL, VARIANT * Flags, VARIANT * TargetFrameName, VARIANT * PostData, VARIANT * Headers, VARIANT_BOOL * Cancel);
  893.         [id(0xfb),  helpstring("method NotifyNewWindow2")]              HRESULT NotifyNewWindow2(IDispatch * * ppDisp, VARIANT_BOOL * Cancel);
  894.         [id(0xfc),  helpstring("method NotifyNavigateComplete2")]       HRESULT NotifyNavigateComplete2(IDispatch * pDisp, VARIANT * URL);
  895.         [id(0x103), helpstring("method NotifyDocumentComplete")]        HRESULT NotifyDocumentComplete(IDispatch * pDisp, VARIANT * URL);
  896.         [id(0xfd),  helpstring("method NotifyOnQuit")]                  HRESULT NotifyOnQuit();
  897.         [id(0xfe),  helpstring("method NotifyOnVisible")]               HRESULT NotifyOnVisible(VARIANT_BOOL Visible);
  898.         [id(0xff),  helpstring("method NotifyOnToolBar")]               HRESULT NotifyOnToolBar(VARIANT_BOOL ToolBar);
  899.         [id(0x100), helpstring("method NotifyOnMenuBar")]               HRESULT NotifyOnMenuBar(VARIANT_BOOL MenuBar);
  900.         [id(0x101), helpstring("method NotifyOnStatusBar")]             HRESULT NotifyOnStatusBar(VARIANT_BOOL StatusBar);
  901.         [id(0x102), helpstring("method NotifyOnFullScreen")]            HRESULT NotifyOnFullScreen(VARIANT_BOOL FullScreen);
  902.         [id(0x104), helpstring("method NotifyOnTheaterMode")]           HRESULT NotifyOnTheaterMode(VARIANT_BOOL TheaterMode);
  903.  
  904. } ;
  905.                 // ------
  906.                 //    these interfaces for running without the VidControl
  907.                 //    - idea is to create CoCreate supervisor, and 'put' it here.
  908. [
  909.     object,
  910.     uuid (05500360-FAA5-4df9-8246-BFC23AC5CEA8),
  911.     hidden,
  912. //  dual,
  913.     helpstring("ITVENavAid_NoVidCtl Interface"),
  914.     pointer_default(unique)
  915. ]
  916. interface ITVENavAid_NoVidCtl : IUnknown
  917. {
  918.     [propput ,id(1),  helpstring("property NoVidCtl_Supervisor")]       HRESULT NoVidCtl_Supervisor([in] ITVESupervisor *pSuper);                   
  919.     [propget ,id(1),  helpstring("property NoVidCtl_Supervisor")]       HRESULT NoVidCtl_Supervisor([out,retval] ITVESupervisor **ppSuper);                 
  920.     
  921. } ;
  922.  
  923.                 // ------
  924. [
  925.     object,
  926.     uuid (05500260-FAA5-4df9-8246-BFC23AC5CEA8),
  927.     hidden,
  928.     dual,                                           // - used in proxying, must be marked Dual regardless of what .net says
  929.     helpstring("ITVENavAid_Helper Interface"),
  930.     pointer_default(unique)
  931. ]
  932. interface ITVENavAid_Helper : IUnknown
  933. {
  934.         [         id(1),  helpstring("method LocateVidAndTriggerCtrls")]            HRESULT LocateVidAndTriggerCtrls([out] IDispatch **pVidCtrl, [out] IDispatch **pTrigCtrl);
  935.         [         id(2),  helpstring("method NotifyTVETriggerUpdated_XProxy")]      HRESULT NotifyTVETriggerUpdated_XProxy([in] ITVETrigger *pTrigger,[in]  BOOL fActive, [in] long lChangedFlags); // changedFlags : NTRK_grfDiff
  936.         [         id(3),  helpstring("method ReInitCurrNavState")]                  HRESULT ReInitCurrNavState([in] long lReserved);
  937.     
  938. } ; 
  939. // ----------------------------------------------------
  940. //      Filter interfaces
  941. // -----------------------------------------------------
  942. [
  943.     object,
  944.     uuid (05500180-FAA5-4df9-8246-BFC23AC5CEA8),
  945. //  dual,
  946.     helpstring("TVEFilter Interface"),
  947.     pointer_default(unique)
  948. ]
  949. interface ITVEFilter : IUnknown
  950. {
  951. //  [propget, id(2),  helpstring("property Supervisor")]        HRESULT Supervisor([out, retval] IDispatch **ppSuperDsp);
  952.     [propget, id(3),  helpstring("property SupervisorPunk")]    HRESULT SupervisorPunk([out, retval] IUnknown **ppSuperPunk);
  953.  
  954.     [propget, id(4),  helpstring("property IPAdapterAddress")]  HRESULT IPAdapterAddress([out, retval] BSTR *pbstrIPAddr);
  955.     [propput, id(4), helpstring("property IPAdapterAddress")]   HRESULT IPAdapterAddress([in] BSTR bstrIPAddr);
  956.  
  957.     [propget, id(5),  helpstring("property StationID")]         HRESULT StationID([out, retval] BSTR *pbstrStationID);
  958.     [propput, id(5),  helpstring("property StationID")]         HRESULT StationID([in] BSTR bstrStationID);
  959.  
  960.     [propget, id(6),  helpstring("property MulticastList")]         HRESULT MulticastList([out, retval] BSTR *pbstrMulticastList);
  961.     [propget, id(7),  helpstring("property AdapterDescription")]    HRESULT AdapterDescription([out, retval] BSTR *pbstrAdapterDescription);
  962.  
  963.     [         id(8),  helpstring("method ReTune")]              HRESULT ReTune();
  964.  
  965.                             // should move to FilterHelper
  966.     [propget, id(9),  helpstring("property HaltFlags")]         HRESULT HaltFlags([out, retval] LONG *plGrfHaltFlags);
  967.     [propput, id(9),  helpstring("property HaltFlags")]         HRESULT HaltFlags([in] LONG lGrfHaltFlags);
  968.  
  969.     [         id(10), helpstring("method ParseCCBytePair")]     HRESULT ParseCCBytePair([in] LONG lByteType, [in] BYTE byte1, [in] BYTE byte2);
  970.  
  971.     [propget, id(11), helpstring("property IPSinkAdapterAddress")]  HRESULT IPSinkAdapterAddress([out, retval] BSTR *pbstrIPAddr);
  972.  
  973. //  [propput, id(12),  helpstring("property SupervisorHelperPunk")]     HRESULT get_SupervisorHelperPunk([out] IUnknown **ppSuperHelper);
  974.  
  975. };
  976.  
  977. // ------------------------------------------------------
  978. [
  979.     object,
  980.     uuid (05500280-FAA5-4df9-8246-BFC23AC5CEA8),
  981.     hidden,
  982.     helpstring("ITVEFilter_Helper Interface"),
  983.     pointer_default(unique)
  984. ]
  985. interface ITVEFilter_Helper : IUnknown
  986. {
  987. //  [id(1),helpstring("method ConnectParent")]      HRESULT ConnectParent([in] ITVEEnhancement *pEnhancement);
  988. } ;
  989.  
  990.  
  991. [
  992.     object,
  993.     uuid (05500190-FAA5-4df9-8246-BFC23AC5CEA8),
  994.     dual,
  995.     helpstring("ITVETriggerCtrl Interface"),
  996.     pointer_default(unique)
  997. ]
  998. interface ITVETriggerCtrl : IDispatch
  999. {
  1000.     [propput, id(1)] HRESULT enabled([in] VARIANT_BOOL newVal);
  1001.     [propget, id(1)] HRESULT enabled([out, retval] VARIANT_BOOL* pVal);
  1002.     [propget, id(2)] HRESULT sourceID([out, retval] BSTR* pbstrID);
  1003.     [propput, id(3)] HRESULT releasable([in] VARIANT_BOOL newVal);
  1004.     [propget, id(3)] HRESULT releasable([out, retval] VARIANT_BOOL* pVal);
  1005.     [propget, id(4)] HRESULT backChannel([out, retval] BSTR* pVal);
  1006.     [propget, id(5)] HRESULT contentLevel([out, retval] double* pVal);
  1007. } ;
  1008.  
  1009. [
  1010.     object,
  1011.     uuid (05500191-FAA5-4df9-8246-BFC23AC5CEA8),
  1012.     hidden,
  1013.     helpstring("ITVETriggerCtrl_Helper Interface"),
  1014.     pointer_default(unique)
  1015. ]
  1016. interface ITVETriggerCtrl_Helper : IUnknown
  1017. {
  1018.     [propput, id(1)] HRESULT sourceID([in] BSTR pSourceUUID);           // cache the SourceID
  1019.     [propget, id(2)] HRESULT TopLevelPage([out, retval] BSTR *pURL);    // return the cached URL (???) of the top web page 
  1020.  
  1021. } ;
  1022.  
  1023. // ---------------------------------------------------------------------------------------
  1024. // ***************************************************************************************
  1025. // ----------------------------------------------------------------------------------------
  1026. [
  1027.     uuid(1700C001-6666-4f66-B1E2-BF3C9FBB9BA6),     // new
  1028.     version(1.0),
  1029.     helpstring("Microsoft TVE Library and DShow Filter")
  1030. ]
  1031. library MSTvELib
  1032. {
  1033.     importlib("stdole32.tlb");
  1034.     importlib("stdole2.tlb");
  1035. // -------------------------------------------------------
  1036. typedef enum NENH_grfDiff           // need to fill out..
  1037. {
  1038.     NENH_grfNone                = 0x0000,               // no flags
  1039.     NENH_grfDescription         = 0x00000001,
  1040.     NENH_grfIsPrimary           = 0x00000002,
  1041.     NENH_grfProtocolVersion     = 0x00000004,
  1042.     NENH_grfSessionUserName     = 0x00000008,
  1043.     NENH_grfSessionId           = 0x00000010,
  1044.     NENH_grfSessionVersion      = 0x00000020,
  1045.     NENH_grfSessionIPAddress    = 0x00000040,
  1046.     NENH_grfSessionName         = 0x00000080,
  1047.     NENH_grfEmailAddresses      = 0x00000100,
  1048.     NENH_grfPhoneNumbers        = 0x00000200,
  1049.     NENH_grfUUID                = 0x00000400,
  1050.     NENH_grfStartTime           = 0x00000800,
  1051.     NENH_grfStopTime            = 0x00001000,
  1052.     NENH_grfType                = 0x00002000,
  1053.     NENH_grfTveType             = 0x00004000,
  1054.     NENH_grfTveSize             = 0x00008000,
  1055.     NENH_grfTveLevel            = 0x00010000,
  1056.     NENH_grfAttributes          = 0x00020000,
  1057.     NENH_grfRest                = 0x00040000,
  1058.     NENH_grfVariationAdded      = 0x00080000,
  1059.     NENH_grfVariationRemoved    = 0x00100000,
  1060.     NENH_grfDescriptionURI      = 0x00200000,
  1061.     NENH_grfSomeVarIP           = 0x00400000,
  1062.     NENH_grfSomeVarText         = 0x00800000,
  1063.     NENH_grfSomeVarBandwidth    = 0x01000000,
  1064.     NENH_grfSomeVarLanguages    = 0x02000000,
  1065.     NENH_grfSomeVarAttribute    = 0x04000000,
  1066.     NENH_grfUnused              = 0x08000000,
  1067.     NENH_grfSAPVersion          = 0x10000000,
  1068.     NENH_grfSAPAddressType      = 0x20000000,
  1069.     NENH_grfSAPOther            = 0x40000000,
  1070.     NENH_grfSAPEncryptComp      = 0x80000000,
  1071.     NENH_grfAnyIP               = (NENH_grfSomeVarIP | NENH_grfVariationAdded | NENH_grfVariationRemoved),
  1072.     NENH_grfAll                 = (NENH_grfSomeVarAttribute<<1) - 1             // all flags
  1073. } NENH_grfDiff;
  1074.  
  1075. typedef enum NVAR_grfDiff   
  1076. {   
  1077.     NVAR_grfNone                = 0x0000,
  1078.     NVAR_grfDescription         = 0x0001,
  1079.     NVAR_grfMediaName           = 0x0002,
  1080.     NVAR_grfMediaTitle          = 0x0004,
  1081.     NVAR_grfFilePort            = 0x0008,
  1082.     NVAR_grfFileIPAddress       = 0x0010,
  1083.     NVAR_grfFileIPAdapter       = 0x0020,
  1084.     NVAR_grfTriggerPort         = 0x0040,
  1085.     NVAR_grfTriggerIPAddress    = 0x0080,
  1086.     NVAR_grfTriggerIPAdapter    = 0x0100,
  1087.     NVAR_grfAttributes          = 0x0200,
  1088.     NVAR_grfLanguages           = 0x0400,
  1089.     NVAR_grfBandwidth           = 0x0800,
  1090.     NVAR_grfBandwidthInfo       = 0x1000,
  1091.     NVAR_grfRest                = 0x2000,
  1092.     NVAR_grfAnyIP               = (NVAR_grfFilePort | NVAR_grfFileIPAddress | NVAR_grfFileIPAdapter |
  1093.                                     NVAR_grfTriggerPort | NVAR_grfTriggerIPAddress | NVAR_grfTriggerIPAdapter),         
  1094.     NVAR_grfAnyText             = (NVAR_grfDescription | NVAR_grfMediaName | NVAR_grfMediaTitle),           
  1095.     NVAR_grfAnyBandwidth        = (NVAR_grfBandwidth | NVAR_grfBandwidthInfo),          
  1096.     NVAR_grfAnyAttribute        = (NVAR_grfAttributes | NVAR_grfRest),          
  1097.  
  1098.     NVAR_grfAll                 = (NVAR_grfRest<<1) - 1             // all flags
  1099. } NVAR_grfDiff;
  1100.  
  1101.  
  1102. typedef enum NTRK_grfDiff                   // attempt at a bit-field flag
  1103. {
  1104.     NTRK_grfNone    = 0x00,
  1105.     NTRK_grfURL     = 0x01,
  1106.     NTRK_grfName    = 0x02,
  1107.     NTRK_grfScript  = 0x04,
  1108.     NTRK_grfDate    = 0x08,
  1109.     NTRK_grfTVELevel= 0x10,
  1110.     NTRK_grfExpired = 0x20,                 // trigger arrived out of date 
  1111.     NTRK_grfRest    = 0x40,
  1112.     NTRK_grfAll     = (NTRK_grfRest<<1) - 1             // all flags
  1113. }   NTRK_grfDiff;
  1114.  
  1115. typedef enum NFLT_grfHaltFlags              // flags to turn various processing bits off
  1116. {
  1117.     NFLT_grfNone            = 0x00,
  1118.  
  1119.     NFLT_grfTA_Listen       = 0x01,         // don't listen for CC (XOverLink) triggers
  1120.     NFLT_grfTA_Decode       = 0x02,         // don't accumulate byte data for XOverLink triggers into strings
  1121.     NFLT_grfTA_Parse        = 0x04,         // don't parse any XOverLink data
  1122.     
  1123.     NFLT_grfTB_AnncListen   = 0x10,         // suspend listening for announcement packets if set
  1124.     NFLT_grfTB_AnncDecode   = 0x20,         // suspend decoding and processing of announcement packets if set
  1125.     NFLT_grfTB_AnncParse    = 0x40,         // don't parse any announcements
  1126.  
  1127.     NFLT_grfTB_TrigListen   = 0x100,        // suspend listening for transport B triggers
  1128.     NFLT_grfTB_TrigDecode   = 0x200,        // suspend listening for transport B triggers
  1129.     NFLT_grfTB_TrigParse    = 0x400,        // don't parse any transport B triggers
  1130.  
  1131.     NFLT_grfTB_DataListen   = 0x1000,       // suspend listening for transport B data (files)
  1132.     NFLT_grfTB_DataDecode   = 0x2000,       // suspend listening for transport B data (files)
  1133.     NFLT_grfTB_DataParse    = 0x4000,       // don't parse any transport B data (files)
  1134.  
  1135.     NFLT_grf_ExpireQueue    = 0x10000,      // turn expire queue processing on and off
  1136.     NFLT_grf_Extra1         = 0x100000,     // extra flag
  1137.     NFLT_grf_Extra2         = 0x200000,     // extra flag
  1138.     NFLT_grf_Extra3         = 0x400000,     // extra flag
  1139.     NFLT_grf_Extra4         = 0x800000      //extra flag 
  1140.  
  1141. }   NFLT_grfHaltFlags;
  1142.  
  1143.  
  1144. // -------------------------------------------------    
  1145. // ---------------------------------------------------
  1146. //          CAUTION - if Change events below, need to perform (after MIDL compiling this file): 
  1147. //                      CTVESupervisor->Implement Connection Point (_ITVEEvents)
  1148. //                  AND 
  1149. //                      CTVEFeature->Implement Connection Point (_ITVEEvents)
  1150. //                    to regenerate the  CProxy_ITVEEvents<> code.  
  1151. //
  1152. //                  Select Browse... button, goto filters\tve\mstve\objd\i386 directory, use mstve.tlb 
  1153. //
  1154. //                  Note thefile MSTvECP.h must be checked out. 
  1155. //
  1156.     
  1157.     [
  1158.         uuid(05500000-FAA5-4df9-8246-BFC23AC5CEA8),
  1159.         helpstring("_ITVEEvents Interface")
  1160.     ]
  1161.     dispinterface _ITVEEvents
  1162.     {
  1163.         properties:
  1164.         methods:
  1165.         [id(2101), helpstring("method NotifyTVETune")]                  HRESULT NotifyTVETune([in] NTUN_Mode tuneMode, [in] ITVEService *pService, [in] BSTR bstrDescription, [in] BSTR bstrIPAdapter);
  1166.         [id(2102), helpstring("method NotifyTVEEnhancementNew")]        HRESULT NotifyTVEEnhancementNew([in] ITVEEnhancement *pEnh);
  1167.         [id(2103), helpstring("method NotifyTVEEnhancementUpdated")]    HRESULT NotifyTVEEnhancementUpdated([in] ITVEEnhancement *pEnh, [in] long lChangedFlags);   // changedFlags : NENH_grfDiff
  1168.         [id(2104), helpstring("method NotifyTVEEnhancementStarting")]   HRESULT NotifyTVEEnhancementStarting([in] ITVEEnhancement *pEnh);
  1169.         [id(2105), helpstring("method NotifyTVEEnhancementExpired")]    HRESULT NotifyTVEEnhancementExpired([in] ITVEEnhancement *pEnh);
  1170.         [id(2106), helpstring("method NotifyTVETriggerNew")]            HRESULT NotifyTVETriggerNew([in] ITVETrigger *pTrigger,[in]  BOOL fActive);
  1171.         [id(2107), helpstring("method NotifyTVETriggerUpdated")]        HRESULT NotifyTVETriggerUpdated([in] ITVETrigger *pTrigger,[in]  BOOL fActive, [in] long lChangedFlags);    // changedFlags : NTRK_grfDiff
  1172.         [id(2108), helpstring("method NotifyTVETriggerExpired")]        HRESULT NotifyTVETriggerExpired([in] ITVETrigger *pTrigger,[in]  BOOL fActive);
  1173.         [id(2109), helpstring("method NotifyTVEPackage")]               HRESULT NotifyTVEPackage([in] NPKG_Mode engPkgMode, [in] ITVEVariation *pVariation, [in] BSTR bstrUUID, [in] long  cBytesTotal, [in] long  cBytesReceived);
  1174.         [id(2110), helpstring("method NotifyTVEFile")]                  HRESULT NotifyTVEFile([in] NFLE_Mode engFileMode, [in] ITVEVariation *pVariation, [in] BSTR bstrUrlName, [in] BSTR bstrFileName);
  1175.         [id(2111), helpstring("method NotifyTVEAuxInfo")]               HRESULT NotifyTVEAuxInfo([in] NWHAT_Mode engAuxInfoMode, [in] BSTR bstrAuxInfoString, [in] long lChangedFlags, [in] long lErrorLine); // WhatIsIt is NWHAT_Mode - lChangedFlags is NENH_grfDiff or NTRK_grfDiff treated as error bits
  1176.     };
  1177.  
  1178.     [
  1179.         uuid(05500001-FAA5-4df9-8246-BFC23AC5CEA8),
  1180.         helpstring("TVETrigger Class")
  1181.     ]
  1182.     coclass TVETrigger
  1183.     {
  1184.         [default] interface ITVETrigger;
  1185.         interface ITVETrigger_Helper;
  1186.     };
  1187. // ----------------------------------------------------
  1188.  
  1189.     [
  1190.         uuid(05500002-FAA5-4df9-8246-BFC23AC5CEA8),
  1191.         helpstring("TVETrack Class")
  1192.     ]
  1193.     coclass TVETrack
  1194.     {
  1195.         [default] interface ITVETrack;
  1196.         interface ITVETrack_Helper;
  1197.     };
  1198. // ---------------------------------
  1199. //  [
  1200. //      uuid(05500012-FAA5-4df9-8246-BFC23AC5CEA8),
  1201. //      helpstring("TVETracks Class")
  1202. //  ]
  1203. //  coclass TVETracks
  1204. //  {
  1205. //      [default] interface ITVETracks;
  1206. //  };
  1207. // ----------------------------------------------------
  1208.  
  1209.     [
  1210.         uuid(05500003-FAA5-4df9-8246-BFC23AC5CEA8),
  1211.         helpstring("TVEVariation Class")
  1212.     ]
  1213.     coclass TVEVariation
  1214.     {
  1215.         [default] interface ITVEVariation;
  1216.         interface ITVEVariation_Helper;
  1217.     };
  1218. //  [
  1219. //      uuid(05500013-FAA5-4df9-8246-BFC23AC5CEA8),
  1220. //      helpstring("TVEVariations Class")
  1221. //  ]
  1222. //  coclass TVEVariations
  1223. //  {
  1224. //      [default] interface ITVEVariations;
  1225. //  };
  1226. // ---------------------------------------------------
  1227.     [
  1228.         uuid(05500004-FAA5-4df9-8246-BFC23AC5CEA8),
  1229.         helpstring("TVEEnhancement Class")
  1230.     ]
  1231.     coclass TVEEnhancement
  1232.     {
  1233.         [default] interface ITVEEnhancement;
  1234.         interface ITVEEnhancement_Helper;
  1235.     };
  1236.  
  1237.             // --------------------------------
  1238.  
  1239.     [
  1240.         uuid(05500014-FAA5-4df9-8246-BFC23AC5CEA8),
  1241.         helpstring("TVEEnhancements Class")
  1242.     ]
  1243.     coclass TVEEnhancements
  1244.     {
  1245.         [default] interface ITVEEnhancements;
  1246.     };
  1247. // ---------------------------------------------------
  1248.  
  1249.  
  1250.     [
  1251.         uuid(05500005-FAA5-4df9-8246-BFC23AC5CEA8),
  1252.         helpstring("TVEService Class")
  1253.     ]
  1254.     coclass TVEService
  1255.     {
  1256.         [default] interface ITVEService;
  1257.         interface ITVEService_Helper;
  1258.     };
  1259.  
  1260.         [
  1261.         uuid(05500025-FAA5-4df9-8246-BFC23AC5CEA8),
  1262.         helpstring("TVEFeature Class")
  1263.     ]
  1264.     coclass TVEFeature
  1265.     {
  1266.         [default] interface ITVEFeature;
  1267.         [default, source] dispinterface _ITVEEvents;        // out going event handler 
  1268.         interface _ITVEEvents;                              // incoming event interface
  1269. //      interface ITVEService_Helper;
  1270.     };
  1271.  
  1272.         // -------------------------------
  1273.  
  1274.     [
  1275.         uuid(05500015-FAA5-4df9-8246-BFC23AC5CEA8),
  1276.         helpstring("TVEServices Class")
  1277.     ]
  1278.     coclass TVEServices
  1279.     {
  1280.         [default] interface ITVEServices;
  1281.     };
  1282.  
  1283.  
  1284. // ---------------------------------------------------
  1285.     [
  1286.         uuid(05500006-FAA5-4df9-8246-BFC23AC5CEA8),
  1287.         helpstring("TVESupervisor Class")
  1288.     ]
  1289.     coclass TVESupervisor
  1290.     {
  1291.         [default] interface ITVESupervisor;
  1292.         [default, source] dispinterface _ITVEEvents;
  1293.         interface ITVESupervisor_Helper;
  1294.     };
  1295. /*
  1296.     [
  1297.         hidden,
  1298.         uuid(05500406-FAA5-4df9-8246-BFC23AC5CEA8),
  1299.         helpstring("ITVESupervisorGITProxy Class")
  1300.     ]
  1301.     coclass TVESupervisorGITProxy
  1302.     {
  1303.         [default] interface ITVESupervisorGITProxy;
  1304.     }; 
  1305.     */
  1306. // ---------------------------------------------------
  1307.  
  1308.     [
  1309.         uuid(05500021-FAA5-4df9-8246-BFC23AC5CEA8),
  1310.         helpstring("TVEAttrMap Class")
  1311.     ]   
  1312.     coclass TVEAttrMap
  1313.     {
  1314.         [default] interface ITVEAttrMap;
  1315.     };
  1316.  
  1317.     [
  1318.         uuid(05500022-FAA5-4df9-8246-BFC23AC5CEA8),
  1319.         helpstring("TVEAttrTimeQ Class")
  1320.     ]   
  1321.     coclass TVEAttrTimeQ
  1322.     {
  1323.         [default] interface ITVEAttrTimeQ;
  1324.     };
  1325.  
  1326.     [
  1327.         uuid(05500030-FAA5-4df9-8246-BFC23AC5CEA8),
  1328.         helpstring("TVEMCast Class")
  1329.     ]   
  1330.     coclass TVEMCast
  1331.     {
  1332.         [default] interface ITVEMCast;
  1333.     };
  1334.  
  1335.     [
  1336.         uuid(05500031-FAA5-4df9-8246-BFC23AC5CEA8),
  1337.         helpstring("TVEMCasts Class")
  1338.     ]
  1339.     coclass TVEMCasts
  1340.     {
  1341.         [default] interface ITVEMCasts;
  1342.     };
  1343.  
  1344.     [
  1345.         uuid(05500032-FAA5-4df9-8246-BFC23AC5CEA8),
  1346.         helpstring("TVEMCastManager Class")
  1347.     ]
  1348.     coclass TVEMCastManager
  1349.     {
  1350.         [default] interface ITVEMCastManager;
  1351.         interface ITVEMCastManager_Helper;
  1352.     };
  1353.  
  1354.  
  1355.     [
  1356.         uuid(05500040-FAA5-4df9-8246-BFC23AC5CEA8),
  1357.         helpstring("TVEMCastCallback Class")
  1358.     ]
  1359.     coclass TVEMCastCallback
  1360.     {
  1361.         [default] interface ITVEMCastCallback;
  1362.     };
  1363.     [
  1364.         uuid(05500041-FAA5-4df9-8246-BFC23AC5CEA8),
  1365.         helpstring("TVECBAnnc Class")
  1366.     ]
  1367.                 // specific Multicast Callbacks
  1368.     coclass TVECBAnnc
  1369.     {
  1370.         [default] interface ITVECBAnnc;
  1371.     };
  1372.     [
  1373.         uuid(05500042-FAA5-4df9-8246-BFC23AC5CEA8),
  1374.         helpstring("TVECBTrig Class")
  1375.     ]
  1376.     coclass TVECBTrig
  1377.     {
  1378.         [default] interface ITVECBTrig;
  1379.     };
  1380.     [
  1381.         uuid(05500043-FAA5-4df9-8246-BFC23AC5CEA8),
  1382.         helpstring("TVECBFile Class")
  1383.     ]
  1384.     coclass TVECBFile
  1385.     {
  1386.         [default] interface ITVECBFile;
  1387.     };
  1388.     [
  1389.         uuid(05500049-FAA5-4df9-8246-BFC23AC5CEA8),
  1390.         helpstring("TVECBDummy Class")
  1391.     ]
  1392.     coclass TVECBDummy
  1393.     {
  1394.         [default] interface ITVECBDummy;
  1395.     };
  1396.  
  1397.  
  1398.     [
  1399.         uuid(05500050-FAA5-4df9-8246-BFC23AC5CEA8),
  1400.         helpstring("TVEFile Class")
  1401.     ]
  1402.     coclass TVEFile
  1403.     {
  1404.         [default] interface ITVEFile;
  1405.     }
  1406.  
  1407.                 // This control gets CoCreate'ed by an app to handle hooking things together
  1408.     [
  1409.         uuid(05500070-FAA5-4df9-8246-BFC23AC5CEA8),
  1410.         helpstring("TVENavAid Class")
  1411.     ]
  1412.     coclass TVENavAid
  1413.     {
  1414.         [default] interface ITVENavAid;                     // controllable from HTML
  1415.         interface ITVENavAid_Helper;                        // internal control methods
  1416.         interface ITVENavAid_NoVidCtl;                      // to work without the VidControl
  1417.     };
  1418.  
  1419.                 // this is the DShow TVE Receiver Filter that encapsulates a TVESupervisor 
  1420.                 //  object in a in a DShow graph
  1421.     [
  1422.         uuid(05500080-FAA5-4df9-8246-BFC23AC5CEA8),
  1423.         helpstring("TVEFilter Class")
  1424.     ]
  1425.     coclass TVEFilter
  1426.     {
  1427. //      [default, source] dispinterface _ITVEEvents;
  1428.         [default] interface ITVEFilter;
  1429.         interface ITVEFilter_Helper;
  1430.     };
  1431.  
  1432.                 // This control gets CoCreated by HTML in <OBJECT TYPE="application\tve-trigger">
  1433.                 //  Implements the tve-trigger receiver object properties as per Atvef Spec
  1434.     [
  1435.         uuid(05500091-FAA5-4df9-8246-BFC23AC5CEA8),
  1436.         helpstring("_ITVETriggerCtrlEvents Interface")
  1437.     ]
  1438.     dispinterface _ITVETriggerCtrlEvents 
  1439.     {
  1440.         properties:
  1441.         methods:
  1442.     };
  1443.  
  1444.  
  1445.     [
  1446.         uuid(05500090-FAA5-4df9-8246-BFC23AC5CEA8),
  1447.         helpstring("TVETriggerCtrl Class")
  1448.     ]
  1449.     coclass TVETriggerCtrl
  1450.     {
  1451.         [default] interface ITVETriggerCtrl;                    // controllable from HTML
  1452.         interface ITVETriggerCtrl_Helper;                       // internal control methods
  1453.         [default, source] dispinterface _ITveTriggerCtrlEvents; // fire control events to HTML
  1454. //      interface _ITVEvents;                                   // respond to slew of TVE events
  1455.     };
  1456.  
  1457. };
  1458.